#include	"VectorCrossProduct.h"
#include	"Vector3i.h"
#include	"Vector3f.h"
#include	"Vector3d.h"

Vector3i CrossProduct(const Vector3i & vecl, const Vector3i & vecr)
{
	return Vector3i(
		vecl[1] * vecr[2] - vecl[2] * vecr[1],
		vecl[2] * vecr[0] - vecl[0] * vecr[2],
		vecl[0] * vecr[1] - vecl[1] * vecr[0]);
}

Vector3f CrossProduct(const Vector3f & vecl, const Vector3f & vecr)
{
	return Vector3f(
		vecl[1] * vecr[2] - vecl[2] * vecr[1],
		vecl[2] * vecr[0] - vecl[0] * vecr[2],
		vecl[0] * vecr[1] - vecl[1] * vecr[0]);
}

Vector3d CrossProduct(const Vector3d & vecl, const Vector3d & vecr)
{
	return Vector3d(
		vecl[1] * vecr[2] - vecl[2] * vecr[1],
		vecl[2] * vecr[0] - vecl[0] * vecr[2],
		vecl[0] * vecr[1] - vecl[1] * vecr[0]);
}

Vector3f CrossProduct(const Vector3i & vecl, const Vector3f & vecr)
{
	return Vector3f(
		vecl[1] * vecr[2] - vecl[2] * vecr[1],
		vecl[2] * vecr[0] - vecl[0] * vecr[2],
		vecl[0] * vecr[1] - vecl[1] * vecr[0]);
}

Vector3f CrossProduct(const Vector3f & vecl, const Vector3i & vecr)
{
	return Vector3f(
		vecl[1] * vecr[2] - vecl[2] * vecr[1],
		vecl[2] * vecr[0] - vecl[0] * vecr[2],
		vecl[0] * vecr[1] - vecl[1] * vecr[0]);
}

Vector3d CrossProduct(const Vector3d & vecl, const Vector3i & vecr)
{
	return Vector3d(
		vecl[1] * vecr[2] - vecl[2] * vecr[1],
		vecl[2] * vecr[0] - vecl[0] * vecr[2],
		vecl[0] * vecr[1] - vecl[1] * vecr[0]);
}

Vector3d CrossProduct(const Vector3i & vecl, const Vector3d & vecr)
{
	return Vector3d(
		vecl[1] * vecr[2] - vecl[2] * vecr[1],
		vecl[2] * vecr[0] - vecl[0] * vecr[2],
		vecl[0] * vecr[1] - vecl[1] * vecr[0]);
}

Vector3d CrossProduct(const Vector3d & vecl, const Vector3f & vecr)
{
	return Vector3d(
		vecl[1] * vecr[2] - vecl[2] * vecr[1],
		vecl[2] * vecr[0] - vecl[0] * vecr[2],
		vecl[0] * vecr[1] - vecl[1] * vecr[0]);
}

Vector3d CrossProduct(const Vector3f & vecl, const Vector3d & vecr)
{
	return Vector3d(
		vecl[1] * vecr[2] - vecl[2] * vecr[1],
		vecl[2] * vecr[0] - vecl[0] * vecr[2],
		vecl[0] * vecr[1] - vecl[1] * vecr[0]);
}

